package cn.itcast.reflect;

import cn.itcast.domain.Person;

/**
 * 获取Class对象
 */
public class ReflectDemo1 {
    public static void main(String[] args) throws ClassNotFoundException {

        //方法一：适用于程序还没编译运行的时候        -->读取配置文件
        Class cls1 = Class.forName("cn.itcast.domain.Person");
        System.out.println(cls1);

        //类名.class：适用于还没有 new 对象的阶段     -->参数传递
        Class cls2 = Person.class;
        System.out.println(cls2);
        //对象.getClass() 适用于已经有一个特定的对象的阶段 ， 可以操作指定对象     -->对用于对象的字节码获取
        Person p = new Person();
        Class cls3 = p.getClass();
        System.out.println(cls3);


        //显然这些对象都是同一个
        //说明同一个字节码文件在运行时只会被加载进内存一次
    }
}
